Node.js Raspberry Pi GPIO - LED and Pushbutton

Raspberry Pi இல் உள்ளீடு மற்றும் வெளியீடு இரண்டையும் பயன்படுத்தி LED மற்றும் புஷ் பட்டனைக் கட்டுப்படுத்த கற்றுக்கொள்ளுங்கள்

உள்ளீடு மற்றும் வெளியீடு இரண்டையும் பயன்படுத்துதல்

முந்தைய அத்தியாயத்தில் ஒரு Raspberry Pi மற்றும் அதன் GPIO ஐப் பயன்படுத்தி ஒரு LED ஐ ஒளிரச் செய்வது எப்படி என்று கற்றுக்கொண்டோம்.

அதற்காக நாம் ஒரு GPIO பின்னை "வெளியீடு" ஆகப் பயன்படுத்தினோம்.

இந்த அத்தியாயத்தில் நாம் மற்றொரு GPIO பின்னை "உள்ளீடு" ஆகப் பயன்படுத்துவோம்.

5 விநாடிகள் ஒளிர்வதற்குப் பதிலாக, பிரெட்போர்டுடன் இணைக்கப்பட்ட ஒரு பொத்தானை நீங்கள் அழுத்தும் போது LED எரிய வேண்டும்.

எங்களுக்கு என்ன தேவை?

இந்த அத்தியாயத்தில் நாம் ஒரு புஷ் பட்டனுடன் ஒரு LED விளக்கைக் கட்டுப்படுத்தும் ஒரு எளிய உதாரணத்தை உருவாக்குவோம்.

இதற்கு உங்களுக்கு தேவை:

வெவ்வேறு கூறுகளின் விளக்கங்களுக்கு மேலே உள்ள பட்டியலில் உள்ள இணைப்புகளைக் கிளிக் செய்யவும்.

💡 குறிப்பு:

நீங்கள் பயன்படுத்தும் LED வகையைப் பொறுத்து உங்களுக்குத் தேவையான மின்தடை நாம் பயன்படுத்துவதிலிருந்து வேறுபட்டிருக்கலாம். பெரும்பாலான சிறிய LED க்களுக்கு ஒரு சிறிய மின்தடை மட்டுமே தேவை, சுமார் 200-500 ஓம்கள். நீங்கள் பயன்படுத்தும் சரியான மதிப்பு பொதுவாக முக்கியமானது அல்ல, ஆனால் மின்தடையின் மதிப்பு சிறியதாக இருந்தால், LED பிரகாசமாக ஒளிரும்.

இந்த அத்தியாயத்தில் நாம் கடந்த அத்தியாயத்தில் கட்டிய சுற்றுகளின் அடிப்படையில் கட்டுவோம், எனவே மேலே உள்ள பட்டியலில் சில பகுதிகள் உங்களுக்குத் தெரிந்திருக்கும்.

சுற்றுகளைக் கட்டும் பணி

இப்போது எங்கள் பிரெட்போர்டில் சுற்றுகளைக் கட்ட வேண்டிய நேரம் வந்துவிட்டது. கடந்த அத்தியாயத்தில் நாம் உருவாக்கிய சுற்றுகளை தொடக்கப் புள்ளியாகப் பயன்படுத்துவோம்.

நீங்கள் மின்னணுவியலில் புதியவராக இருந்தால், Raspberry Pi க்கான மின்சாரத்தை அணைக்க பரிந்துரைக்கிறோம். மேலும் அதைச் சேதப்படுத்தாமல் இருக்க ஆன்டி-ஸ்டேடிக் பாய அல்லது கிரவுண்டிங் பட்டா பயன்படுத்தவும்.

Raspberry Pi ஐ சரியாக அணைக்க கட்டளையைப் பயன்படுத்தவும்:

pi@jassifteam:~ $ sudo shutdown -h now

Raspberry Pi இல் LED கள் ஒளிர்வதை நிறுத்திய பிறகு, Raspberry Pi இலிருந்து பவர் பிளக்கை வெளியே இழுக்கவும் (அல்லது அது இணைக்கப்பட்டுள்ள பவர் ஸ்ட்ரிப்பை அணைக்கவும்).

சரியாக அணைக்காமல் பிளக்கை இழுப்பது நினைவக கார்ட்டின் ஊழலை ஏற்படுத்தக்கூடும்.

Raspberry Pi 3 with Breadboard. LED and Button circuit

Raspberry Pi 3 with Breadboard. LED and Button circuit

மேலே உள்ள சுற்றுகளின் விளக்கப்படத்தைப் பாருங்கள்.

கடந்த அத்தியாயத்தில் நாம் உருவாக்கிய சுற்றுகளுடன் தொடங்குவோம்:

Raspberry Pi இல்: ஒரு ஜம்பர் கம்பியின் பெண் காலை 5V பவர் பின்னுடன் இணைக்கவும். எங்கள் எடுத்துக்காட்டில் நாம் Physical Pin 2 (5V, row 1, right column) ஐப் பயன்படுத்தினோம்
பிரெட்போர்டில்: 5V பவருடன் இணைக்கப்பட்ட ஜம்பர் கம்பியின் ஆண் காலை வலது பக்கத்தில் உள்ள பவர் பஸில் இணைக்கவும். உங்கள் பிரெட்போர்டின் அந்த முழு நெடுவரிசையும் இணைக்கப்பட்டுள்ளது, எனவே எந்த வரிசை என்பது முக்கியமல்ல. எங்கள் எடுத்துக்காட்டில் நாம் அதை row 1 உடன் இணைத்துள்ளோம்
பிரெட்போர்டில்: புஷ் பட்டனை ட்ரென்ச் முழுவதும் பொருந்தும் வகையில் இணைக்கவும். எங்கள் எடுத்துக்காட்டில் அது rows 13 மற்றும் 15, columns E மற்றும் F உடன் இணைகிறது
பிரெட்போர்டில்: 1k ohm மின்தடையின் ஒரு காலை வலது பக்கத்தில் உள்ள கிரவுண்ட் பஸ் நெடுவரிசையில் இணைக்கவும், மற்றும் மற்ற காலை புஷ் பட்டனின் வலது பக்க கால்களில் ஒன்றுடன் இணைக்கும் வலது பக்க Tie-Point வரிசையில் இணைக்கவும். எங்கள் எடுத்துக்காட்டில் நாம் ஒரு பக்கத்தை Tie-Point row 13, column J உடன் இணைத்துள்ளோம், மற்றும் மற்ற பக்கத்தை அருகிலுள்ள கிரவுண்ட் பஸ் துளையுடன் இணைத்துள்ளோம்
பிரெட்போர்டில்: வலது பவர் பஸிலிருந்து ஒரு ஆண்-க்கு-ஆண் ஜம்பர் கம்பியை புஷ் பட்டனின் மற்ற காலுடன் இணைக்கும் வலது Tie-Point வரிசையில் இணைக்கவும். எங்கள் எடுத்துக்காட்டில் நாம் ஒரு பக்கத்தை Tie-Point row 15, column J உடன் இணைத்துள்ளோம், மற்றும் மற்ற பக்கத்தை அருகிலுள்ள பவர் பஸ் துளையுடன் இணைத்துள்ளோம்
Raspberry Pi இல்: ஒரு ஜம்பர் கம்பியின் பெண் காலை ஒரு GPIO பின்னுடன் இணைக்கவும். எங்கள் எடுத்துக்காட்டில் நாம் Physical Pin 11 (GPIO 17, row 6, left column) ஐப் பயன்படுத்தினோம்
பிரெட்போர்டில்: கிரவுண்ட் இணைப்பு காலுக்கு நேரடியாக எதிரே உள்ள புஷ் பட்டன் காலுடன் இடது Tie-Point வரிசையில் ஜம்பர் கம்பியின் ஆண் காலை இணைக்கவும். எங்கள் எடுத்துக்காட்டில் நாம் அதை row 13, column A உடன் இணைத்துள்ளோம்

உங்கள் சுற்று இப்போது முழுமையாக இருக்க வேண்டும், மேலும் உங்கள் இணைப்புகள் மேலே உள்ள விளக்கப்படத்தைப் போலவே இருக்க வேண்டும்.

இப்போது Raspberry Pi ஐ துவக்குவதற்கும், அதனுடன் தொடர்பு கொள்ள Node.js ஸ்கிரிப்டை எழுதுவதற்கும் நேரம் வந்துவிட்டது.

Raspberry Pi மற்றும் Node.js LED மற்றும் பட்டன் ஸ்கிரிப்ட்

"nodetest" அடைவிற்குச் சென்று, "buttonled.js" என்ற புதிய கோப்பை உருவாக்கவும்:

pi@jassifteam:~ $ nano buttonled.js

கோப்பு இப்போது திறக்கப்பட்டு உள்ளமைக்கப்பட்ட Nano Editor உடன் திருத்தப்படலாம்.

பின்வருவனவற்றை எழுதவும் அல்லது ஒட்டவும்:

buttonled.js

var Gpio = require('onoff').Gpio; //include onoff to interact with the GPIO
let LED = new Gpio(4, 'out'); //use GPIO pin 4 as output
let pushButton = new Gpio(17, 'in', 'both'); //use GPIO pin 17 as input, and 'both' button presses, and releases should be handled

pushButton.watch(function (err, value) { //Watch for hardware interrupts on pushButton GPIO, specify callback function
  if (err) { //if an error
    console.error('There was an error', err); //output error message to console
  return;
  }
  LED.writeSync(value); //turn LED on or off depending on the button state (0 or 1)
});

function unexportOnClose() { //function to run when exiting program
  LED.writeSync(0); // Turn LED off
  LED.unexport(); // Unexport LED GPIO to free resources
  pushButton.unexport(); // Unexport Button GPIO to free resources
};

process.on('SIGINT', unexportOnClose); //function to run when user closes using ctrl+c

குறியீட்டைச் சேமிக்க "Ctrl+x" ஐ அழுத்தவும். "y" உடன் உறுதிப்படுத்தவும், மற்றும் பெயரை "Enter" உடன் உறுதிப்படுத்தவும்.

குறியீட்டை இயக்கவும்:

pi@jassifteam:~ $ node buttonled.js

இப்போது நீங்கள் பொத்தானை அழுத்தும் போது LED எரிய வேண்டும், மேலும் அதை விடுவிக்கும் போது அணைய வேண்டும்.

Ctrl+c உடன் நிரலை முடிக்கவும்.

பயிற்சி

Raspberry Pi இல் பொத்தான் உள்ளீட்டைக் கையாள Node.js இல் onoff தொகுதியில் எந்த முறை பயன்படுத்தப்படுகிறது? தேர்வு செய்யவும்.

listen()
✗ தவறு! "listen()" என்பது onoff தொகுதியில் ஒரு செல்லுபடியாகும் முறை அல்ல
observe()
✗ தவறு! "observe()" என்பது onoff தொகுதியில் ஒரு செல்லுபடியாகும் முறை அல்ல
watch()
✓ சரி! "watch()" முறை பொத்தான் உள்ளீட்டைக் கையாள onoff தொகுதியில் பயன்படுத்தப்படுகிறது
monitor()
✗ தவறு! "monitor()" என்பது onoff தொகுதியில் ஒரு செல்லுபடியாகும் முறை அல்ல